home *** CD-ROM | disk | FTP | other *** search
- /*
- * room.h -- structures and defines for Fnordadel rooms
- *
- * 91Apr29 AA Extracted from ctdl.h and other places.
- */
-
- #ifndef _ROOM_H
- #define _ROOM_H
-
- #define NUMMSGS roomBuf.nummsgs /* # of msgs in this room */
-
- #define MINMAXROOMS 3 /* Don't make this <3, or you will die */
- #define MAXMAXROOMS 999 /* The rest are our own whims */
- #define SANEMAXROOMS 64
-
- /*
- * special system rooms that will always be there.
- */
- #define LOBBY 0 /* Lobby> is >always< room 0. */
- #define MAILROOM 1 /* Mail> is >always< room 1. */
- #define AIDEROOM 2 /* Aide> is >always< room 2. */
-
- /*
- * Room data
- */
- #define MAXGEN 32 /* six bits of generation => 64 of them */
- #define FORGET_OFFSET (MAXGEN / 2) /* For forgetting rooms */
-
- /* Following #defines robbed from Hue, Jr.'s Cit-86 and then hacked on */
- #define MSG_BULK (NUMMSGS * sizeof (theMessages))
- #define RB_SIZE (sizeof(roomBuf) - (PTR_SIZE))
-
- struct rTable { /* The summation of a room */
- unsigned short rtgen; /* generation # of room */
- long flags; /* public/private etc (see flags.h) */
- LABEL rtname; /* name of room */
- long rtlastNet; /* # of last net message in room */
- long rtlastLocal; /* # of last @L message in room */
- long rtlastMessage; /* # of most recent message in room */
- char rtfloorGen; /* floor this room is in */
- } ;
-
- struct aRoom { /* The appearance of a room: */
- unsigned short rbgen; /* generation # of room */
- long flags; /* public/private etc (see flags.h) */
- char rbfloorGen; /* floor this room is in */
- LABEL rbname; /* name of room */
- long rblastNet;
- long rblastLocal;
- long rblastMessage;
- char rbdirname[100]; /* user directory for this room's files */
- unsigned short nummsgs; /* # of msgs currently visible in room */
- theMessages *msg;
- } ;
-
- /*
- * room flags (formerly struct rflags)
- */
- #define INUSE 0x0001L /* Room in use? */
- #define PUBLIC 0x0002L /* Room public? */
- #define ISDIR 0x0004L /* Room directory? */
- #define PERMROOM 0x0008L /* Room permanent? */
- #define SKIP 0x0010L /* Room skipped? (temp for user)*/
- #define UPLOAD 0x0020L /* Can room be uploaded to? */
- #define DOWNLOAD 0x0040L /* Can room be downloaded from? */
- #define SHARED 0x0080L /* Is this a shared room? */
- #define ARCHIVE 0x0100L /* Is this room archived? */
- #define ANON 0x0200L /* is this an anonymous room? */
- #define INVITE 0x0400L /* is this an invite-only room? */
- #define NETDOWNLOAD 0x0800L /* net-downloadable room? */
- #define AUTONET 0x1000L /* net all messages? */
- #define READONLY 0x2000L /* readonly room? */
- #define DESCRIPTION 0x4000L /* description on file? */
-
- #define initroomBuf(x) (x)->msg = (theMessages *) xmalloc(0)
- #define killroomBuf(x) if ((x)->msg) free((x)->msg)
-
- #define USTKSIZ 16 /* allow up to 16 ungotos */
-
- struct Index { /* save-list of room info */
- int visited; /* state of room */
- #define iNEVER 0 /* not seen yet */
- #define iGOTO 1 /* seen & goto'ed past */
- #define iSKIP 2 /* seen & skipped past */
- char lastgen; /* geninfo about room at login */
- } ;
-
- #define l_OLD 0x0001 /* flag bits for listRoom()/listFloor() */
- #define l_NEW 0x0002
- #define l_FGT 0x0004 /* list forgottten rooms */
- #define l_EXCL 0x0008 /* don't list current room/floor */
- #define l_LONG 0x0010 /* long listing (for ;k...) */
- #define x_DIR 0x0020
- #define x_NET 0x0040
- #define x_PUB 0x0080
- #define x_PRIV 0x0100
-
- #endif
-